/**
 * 描述: 接口服务
 * 版权: Copyright (c) 2018
 * 公司: 深圳市网商天下科技开发有限公司
 * 作者: 陈元
 * 版本: 1.0.0
 * 创建时间: 2018/12/20 16:15
 */
import router from '../router';
import {Service} from 'vue-element-simple';
// 系统接口服务
import './system';
// 客户接口
import './customer';
// 首页管理接口
import './homepage';
// 预设管理
import './preset';
// 路线管理
import './route';
// 路线管理
import './rentCar';
// 客服中心管理
import './customerService';
// 優惠券管理
import './coupon';
// 发票申请管理
import './invoice';
// 订单管理
import './order';
// 工作台管理
import './workbench';
// 提现管理
import './financial';
// 小程序发布
import './wxapp';

// debug
import './debug'

export default Service;
// 监听接口响应参数
Service.interceptors.response.use((result, options = {}) => {
  // 参数错误
  if (result.code === 101 || result.code === -1) {
    Service.showErrorMsg(result.msg);
  } else if (`${result.code}` === '502') {
    // saas过期
    console.log(result.msg);
    // 跳转回登陆页面重新登陆
    setTimeout(() => {
      (async () => Service.adminRoleLogout(true))();
      router.push(`/login`)
    }, 1000);
  } else if ((`${result.code}` === '201') && (options['isCheckTokenInvalid'] !== false)) {
    // token过期
    // Service.showErrorMsg(result.msg);
    console.log(result.msg);
    // 跳转回登陆页面重新登陆
    setTimeout(() => {
      router.push(`/login`)
    }, 1000);
    (async () => Service.adminRoleLogout(true))();
  } else if ((`${result.code}` === '402') && (options['isCheckTokenInvalid'] !== false)) {
    // 同个token不允许不同ip登录
    Service.showErrorMsg(result.msg);
    // 跳转回登陆页面重新登陆
    setTimeout(() => {
      router.push(`/login`)
    }, 1000);
    (async () => Service.adminRoleLogout(true))();
  } else if (result.code === 100000000) {
    Service.showConfirm(
      '你已被登出，可以取消继续留在该页面，或者重新登录',
      '确定登出',
      {
        confirmButtonText: '重新登录',
        cancelButtonText: '取消',
        type: 'warning'
      },
      () => {
        location.reload() // 为了重新实例化vue-router对象 避免bug
      });
  }
  return result || {};
});
